#ifndef FND_GAME_2D_TEXTURE_MANAGER_H_PP
#define FND_GAME_2D_TEXTURE_MANAGER_H_PP
#include "ResourceManager.hpp"
#include <sfml/graphics.hpp>
namespace FndGame2D {
  inline void release_resource(sf::Image*& img) {
    delete img ;
  }
  class texture_manager {
  public:
    typedef sf::Image* value_type ;
    typedef std::string key_type ;
  public:
    bool add_image(const key_type& k, value_type v) {
      return m_mgr.add_value(k,v) ;
    }
    const value_type& get_image(const key_type& k) const {
      return m_mgr.get_value(k) ;
    }
    bool has_image(const key_type& key) const {
      return m_mgr.has_value(key) ;
    }
    bool remove_image(const key_type& key) {
      return m_mgr.remove_value(key) ;
    }
  private:
    typedef Manager<key_type, value_type> TextureManagerImpl ;
    TextureManagerImpl m_mgr ;
  } ;
}
#endif
